Content delivery networks (CDNs) provide a caching infrastructure in IP networks to support multimedia services. Existing methods and systems used in CDNs do not take into account the different possible factors that affect optimal content placement in cache nodes. As a result, content distribution makes inefficient use of network resources.
In current solutions, when content is requested from various parts of the network, content is migrated to the cache nodes where it is most needed. Traditionally this is done in a greedy fashion where the cache nodes store every piece of content that pass through them assuming that the content has a high demand, present and future. In other solutions the content provider gives an initial indication of the predicted demand for the content. In all of these solutions the client is always redirected to its closest cache node, regardless of whether the cache node has the content or not. The cache node, upon receiving the client request for content, will check if it has the requested content and, if so, respond to the client. If the content is not available in the cache node, this will result in a cache miss and the request will be redirected to the most appropriate cache node caching the requested content. This redirection is performed by an allocator node (also called locator node), which is the node responsible for redirecting clients to the appropriate cache nodes in the CDN, and thereafter the content will be cached in the cache node closest to the client and thus in the cache node that received the initial request for the content. If the first allocator node that received the request does not know where the content is cached, the first allocator node may send a redirection to a second allocator and so on until an allocator that knows where the content is stored can be found and the final redirection decision can be sent to a cache node. Cache nodes have a maximum storage capacity and when cache nodes are filled up some decision must be made on what content to keep and what content to replace. Depending on the requirements there are numerous algorithms for selecting what to keep such as Least Recently Used (LRU), Most Recently Used (MRU) and Least Frequently Used (LFU). Thus, content with a low frequency of requests with respect to other content will be deleted from the cache node to make room for new content for which it in practice may not be a high demand for.
Further, in a CDN the caching nodes are usually positioned at the edge of an aggregation network. This is an ideal place as it is sufficiently close to the end users and at the same time has good symmetrical bandwidth among caching nodes within the aggregation network. A cache miss may however cause a content request to be forwarded to a cache node located outside of the aggregation network which may result in that the fetching of the content will have to be processed through the costlier core network. This is unfortunate and may result in large impact of the network and an inefficient use of the same, and should thus be avoided as much as possible.